package cn.iocoder.yudao.module.mqtt.framework.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * MQTT重连配置属性
 *
 * @author 芋道源码
 */
@Data
@Component
@ConfigurationProperties(prefix = "mqtt.reconnect")
public class MqttReconnectProperties {

    /**
     * 是否启用自动重连
     */
    private boolean enabled = true;

    /**
     * 初始重连延迟（秒）
     */
    private int initialDelay = 5;

    /**
     * 最大重连延迟（秒）
     */
    private int maxDelay = 300;

    /**
     * 最大重连次数
     */
    private int maxAttempts = 10;

    /**
     * 连接超时时间（秒）
     */
    private int connectionTimeout = 30;

    /**
     * 心跳间隔（秒）
     */
    private int keepAliveInterval = 60;

    /**
     * 最大并发消息数
     */
    private int maxInflight = 1000;

    /**
     * 连接监控间隔（毫秒）
     */
    private long monitorInterval = 30000;

    /**
     * 是否启用连接监控
     */
    private boolean monitorEnabled = true;
} 